package Level01;

import java.io.File;
import java.util.Scanner;

/**
 * 键盘录入一个文件路径，根据文件路径创建文件对象，判断是文件还是文件夹
 * 如果是文件，则输出文件的大小
 * 如果是文件夹，则计算该文件夹下所有文件大小之和并输出(不包含子文件夹)
 */
public class Six {
    private static int count = 0;

    public static void main(String[] args) {
        //1. 创建键盘录入对象
        Scanner scanner = new Scanner(System.in);
        //2. 接收键盘录入的字符串路径
        System.out.println("请输入文件路径");
        String nextLine = scanner.nextLine();
        //3. 根据字符串路径创建文件对象
        File file = new File(nextLine);
        PrintDir printDir = new PrintDir();
        printDir.printDir(file);
        System.out.println("文件个数为:" + count);
    }


    static class PrintDir {
        public void printDir(File file) {
            if (file.isDirectory()) {
                File[] files = file.listFiles();
                for (File file1 : files) {
                    if (file1.isFile()) {
                        //是文件
                        System.out.println("文件大小为:" + file1.length());
                        //输出文件绝对路径
                        System.out.println("文件绝对路径为:" + file1.getAbsolutePath());
                        count++;
                    } else {
                        //是文件夹
                        System.out.println("文件夹绝对路径是:" + file1.getAbsolutePath());
                        // 继续遍历,调用printDir,形成递归
                        printDir(file1);
                    }
                }
            } else {
                //是文件
                System.out.println("文件大小为:" + file.length());
                //输出文件绝对路径
                System.out.println("文件大小为:" + file.getAbsolutePath());
                count++;
            }
        }
    }
}


